home *** CD-ROM | disk | FTP | other *** search
- #ifdef STAND_ALONE
- #define TestTranscoderDispatcher main
- #else
- void registerTestTranscoder(void);
- #endif
-
- #include <ImageCompression.h>
-
- pascal ComponentResult TestTranscoderDispatcher( ComponentParameters *params, Handle storage );
-
- pascal ComponentResult TestTranscoderBeginSequence (Handle storage, ImageDescriptionHandle srcDesc, ImageDescriptionHandle *dstDesc);
- pascal ComponentResult TestTranscoderConvert (Handle storage, void *srcData, long srcDataSize, void **dstData, long *dstDataSize);
- pascal ComponentResult TestTranscoderDisposeData (Handle storage, void *dstData);
- pascal ComponentResult TestTranscoderEndSequence (Handle storage);
-
- pascal ComponentResult TestTranscoderDispatcher( ComponentParameters *params, Handle storage )
- {
- ComponentFunctionUPP proc = nil;
- ComponentResult err = noErr;
-
- switch (params->what) {
- case kComponentOpenSelect:
- case kComponentCloseSelect:
- break;
-
- case kImageTranscoderBeginSequenceSelect:
- proc = (ComponentFunctionUPP)TestTranscoderBeginSequence;
- break;
-
- case kImageTranscoderConvertSelect:
- proc = (ComponentFunctionUPP)TestTranscoderConvert;
- break;
-
- case kImageTranscoderDisposeDataSelect:
- proc = (ComponentFunctionUPP)TestTranscoderDisposeData;
- break;
-
- case kImageTranscoderEndSequenceSelect:
- proc = (ComponentFunctionUPP)TestTranscoderEndSequence;
- break;
-
- default:
- err = badComponentSelector;
- break;
- }
-
- if (proc)
- err = CallComponentFunctionWithStorage(storage, params, proc);
-
- return err;
- }
-
- pascal ComponentResult TestTranscoderBeginSequence (Handle storage, ImageDescriptionHandle srcDesc, ImageDescriptionHandle *dstDesc)
- {
- *dstDesc = srcDesc;
- HandToHand((Handle *)dstDesc);
- (***dstDesc).cType = 'raw ';
-
- return noErr;
- }
-
- pascal ComponentResult TestTranscoderConvert (Handle storage, void *srcData, long srcDataSize, void **dstData, long *dstDataSize)
- {
- Ptr p;
- OSErr err;
-
- if (!srcDataSize)
- return paramErr;
-
- p = NewPtr(srcDataSize);
- err = MemError();
- if (err) return err;
-
- {
- Ptr p1 = srcData, p2 = p;
- long counter = srcDataSize;
- while (counter--)
- *p2++ = ~*p1++;
- }
-
- *dstData = p;
- *dstDataSize = srcDataSize;
-
- return noErr;
- }
-
- pascal ComponentResult TestTranscoderDisposeData (Handle storage, void *dstData)
- {
- DisposePtr((Ptr)dstData);
-
- return noErr;
- }
-
- pascal ComponentResult TestTranscoderEndSequence (Handle storage)
- {
- return noErr;
- }
-
- #ifndef STAND_ALONE
-
- void registerTestTranscoder(void)
- {
- ComponentDescription foo;
-
- foo.componentType = ImageTranscodererComponentType;
- foo.componentSubType = 'gray';
- foo.componentManufacturer = 'raw ';
- foo.componentFlags = 0;
- foo.componentFlagsMask = 0;
-
- RegisterComponent(&foo, (void *)TestTranscoderDispatcher, 1, 0, 0, 0);
- }
-
- #endif
-